﻿using System.Collections.Generic;
using Actya.Core.Security;
using Actya.Core.SiteStructure;
using Actya.Core.Widgets;

namespace Actya.Core.Infrastructure
{
	public interface ICmsContext
	{
		ICmsHost Host { get; }
		Site Site { get; set; }
		Page Page { get; set; }
		User User { get; set; }
		SitemapNode GetCurrentSitemapNode();
		PageLayout GetCurrentPageLayout();
		Theme GetCurrentTheme();
		IDictionary<string, IEnumerable<IWidget>> GetCurrentWidgets();
		IEnumerable<IWidget> GetWidgets(string[] widgetIds);
		IEnumerable<IWidget> GetWidgetsForPageLayout(PageLayout pageLayout);
	}
}
